package com.ruoyi.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.domain.entity.SysUser;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 活动收集对象 activity_collect
 *
 * @author ruoyi
 * @date 2024-04-04
 */
public class ActivityCollect extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 党组织id */
    @Excel(name = "党组织id")
    private Long deptId;

    /** 党组织名称 */
    @Excel(name = "党组织名称")
    private String deptName;

    /** 活动id */
    @Excel(name = "活动id")
    private Long activityId;

    /** 活动类型（数据字典） */
    @Excel(name = "活动类型", readConverterExp = "数据字典")
    private String activityType;

    /** 活动主题 */
    @Excel(name = "活动主题")
    private String activityTheme;

    /** 收集类型（数据字典） */
    @Excel(name = "收集类型", readConverterExp = "数据字典")
    private String collectType;

    /** 状态（0:进行中 1:完成收集 2:补交中 3:补交完成） */
    @Excel(name = "状态", readConverterExp = "0=:进行中,1=:完成收集,2=:补交中,3=:补交完成")
    private String status;

    /** 截至时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "截至时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /** 状态（0:全体活动人员 1:指定活动内人员） */
    @Excel(name = "状态", readConverterExp = "0=:全体活动人员,1=:指定活动内人员")
    private String collectUserType;

    /** 收集人 */
    @Excel(name = "收集人")
    private String collectUser;

    private List<String> collectUserIdList;

    private List<SysUser> collectUserList;

    /** 请假人员是否需要提交（0:不需要 1:需要） */
    @Excel(name = "请假人员是否需要提交", readConverterExp = "0=:不需要,1=:需要")
    private String collectLeave;

    /** 删除标志（0删除 1存在） */
    private String delFlag;


    /**
     *  分页页数
     */
    private Integer pageNum;

    /**
     *  分页条数
     */
    private Integer pageSize;

    /**
     *  收集人总人数
     */
    private Integer collectSumCount;

    /**
     *  完成收集人数
     */
    private Integer collectCount;

    /**
     *  没有完成收集人数
     */
    private Integer noCollectCount;

    /**
     *  请假人数
     */
    private Integer leaveCount;


    /**
     *  还差多少人没有提交
     */
    private Integer differenceCount;

    /**
     *  人员id
     */
    private Long userId;

    /**
     *  能否上传
     */
    private Boolean isUpload;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setDeptName(String deptName)
    {
        this.deptName = deptName;
    }

    public String getDeptName()
    {
        return deptName;
    }
    public void setActivityId(Long activityId)
    {
        this.activityId = activityId;
    }

    public Long getActivityId()
    {
        return activityId;
    }
    public void setActivityType(String activityType)
    {
        this.activityType = activityType;
    }

    public String getActivityType()
    {
        return activityType;
    }
    public void setActivityTheme(String activityTheme)
    {
        this.activityTheme = activityTheme;
    }

    public String getActivityTheme()
    {
        return activityTheme;
    }
    public void setCollectType(String collectType)
    {
        this.collectType = collectType;
    }

    public String getCollectType()
    {
        return collectType;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setEndTime(Date endTime)
    {
        this.endTime = endTime;
    }

    public Date getEndTime()
    {
        return endTime;
    }
    public void setCollectUserType(String collectUserType)
    {
        this.collectUserType = collectUserType;
    }

    public String getCollectUserType()
    {
        return collectUserType;
    }
    public void setCollectUser(String collectUser)
    {
        this.collectUser = collectUser;
    }

    public String getCollectUser()
    {
        return collectUser;
    }
    public void setCollectLeave(String collectLeave)
    {
        this.collectLeave = collectLeave;
    }

    public String getCollectLeave()
    {
        return collectLeave;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    public Integer getPageNum() {
        return pageNum;
    }

    public void setPageNum(Integer pageNum) {
        this.pageNum = pageNum;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    public List<SysUser> getCollectUserList() {
        return collectUserList;
    }

    public void setCollectUserList(List<SysUser> collectUserList) {
        this.collectUserList = collectUserList;
    }

    public List<String> getCollectUserIdList() {
        return collectUserIdList;
    }

    public void setCollectUserIdList(List<String> collectUserIdList) {
        this.collectUserIdList = collectUserIdList;
    }

    public Integer getCollectSumCount() {
        return collectSumCount;
    }

    public void setCollectSumCount(Integer collectSumCount) {
        this.collectSumCount = collectSumCount;
    }

    public Integer getCollectCount() {
        return collectCount;
    }

    public void setCollectCount(Integer collectCount) {
        this.collectCount = collectCount;
    }

    public Integer getLeaveCount() {
        return leaveCount;
    }

    public void setLeaveCount(Integer leaveCount) {
        this.leaveCount = leaveCount;
    }

    public Integer getNoCollectCount() {
        return noCollectCount;
    }

    public void setNoCollectCount(Integer noCollectCount) {
        this.noCollectCount = noCollectCount;
    }

    public Integer getDifferenceCount() {
        return differenceCount;
    }

    public void setDifferenceCount(Integer differenceCount) {
        this.differenceCount = differenceCount;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Boolean getUpload() {
        return isUpload;
    }

    public void setUpload(Boolean upload) {
        isUpload = upload;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("deptId", getDeptId())
            .append("deptName", getDeptName())
            .append("activityId", getActivityId())
            .append("activityType", getActivityType())
            .append("activityTheme", getActivityTheme())
            .append("collectType", getCollectType())
            .append("status", getStatus())
            .append("remark", getRemark())
            .append("endTime", getEndTime())
            .append("collectUserType", getCollectUserType())
            .append("collectUser", getCollectUser())
            .append("collectLeave", getCollectLeave())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
